export const getCurrentLang = () => {
  return localStorage.getItem('lang') || (navigator.language?.toLowerCase().startsWith('en') ? 'en-US' : 'zh-CN')
}

// 从对象中选择符合当前语言的字段
// 支持以下命名：key_en / keyEn / keyEN / key_zh / keyZh / keyCN
// 以及嵌套对象 { key: { 'en-US': '...', 'zh-CN': '...' } }
export const selectLangField = (obj, key, fallback) => {
  if (!obj) return fallback || ''
  const lang = getCurrentLang()
  const isEN = lang.toLowerCase().startsWith('en')
  const suffixes = isEN
    ? [ `${key}_en`, `${key}En`, `${key}EN`, `${key}_EN` ]
    : [ `${key}_zh`, `${key}Zh`, `${key}ZH`, `${key}_CN`, `${key}Cn` ]

  // 嵌套形式
  const nested = obj[key]
  if (nested && typeof nested === 'object') {
    if (nested[lang]) return nested[lang]
    if (isEN && (nested['en'] || nested['en-US'])) return nested['en'] || nested['en-US']
    if (!isEN && (nested['zh'] || nested['zh-CN'])) return nested['zh'] || nested['zh-CN']
  }

  for (const s of suffixes) {
    if (obj[s]) return obj[s]
  }

  // 英文兜底
  if (isEN) {
    if (obj[key]) return obj[key]
  } else {
    // 中文兜底优先原字段
    if (obj[key]) return obj[key]
  }
  return fallback || ''
}

// 针对常见字段的批量选择
export const selectLangObject = (obj, fields) => {
  const result = {}
  for (const f of fields) {
    result[f] = selectLangField(obj, f, obj?.[f] || '')
  }
  return result
}
